home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_b / pulse.act < prev    next >
Text File  |  1995-04-22  |  3KB  |  199 lines

  1. ;puLse - joeL gLuck - anaLog 26 
  2.  
  3. BYTE ARRAY X(192),Y(192),C(192) 
  4. BYTE NUM=[10] 
  5. INT ARRAY XD(192) 
  6. CARD ARRAY LINEPT(192) 
  7.  
  8.  
  9.  
  10. PROC PAUZ(CARD N) 
  11. CARD I 
  12.  
  13.  
  14. FOR I=0 TO N+N 
  15. DO OD 
  16. RETURN 
  17.  
  18.  
  19. PROC INTRO() 
  20. BYTE I ,COLOR1=709 
  21.  
  22.  
  23. Graphics(0) 
  24. Poke(710,0) 
  25. Poke(752,1) 
  26. Print(" ") 
  27. PAUZ(30000) 
  28. Position(17,9) 
  29. Print("puLse") 
  30. PAUZ(30000) 
  31. POSITION(13,11) 
  32. PRINT("by joeL gLuck") 
  33. PAUZ(30000) 
  34. Position(9,13) 
  35. Print("from ANALOG COMPUTING") 
  36. PAUZ(60000) 
  37. FOR I=0 TO 15 DO 
  38.   COLOR1=15-I 
  39.   PAUZ(2000) 
  40.               OD 
  41. RETURN 
  42.  
  43.  
  44. PROC GR10INIT() 
  45. CARD LINE,REG,COL,LUM,SCRN=88  
  46. BYTE ARRAY GTIACOL(8)=705 
  47.  
  48.  
  49. GRAPHICS(10) 
  50. POKE(704,0) 
  51. FOR REG=0 TO 7 DO 
  52.    COL=Rand(16) 
  53. LUM=Rand(9)+4 
  54. GTIACOL(REG)=COL*16+LUM 
  55.                OD 
  56. FOR LINE=0 TO 191 DO 
  57.   LINEPT(LINE)=SCRN+40*LINE 
  58. OD 
  59. RETURN 
  60.  
  61.  
  62.  
  63.  
  64. PROC PLOT10(BYTE X,Y,COL) 
  65. BYTE POINTER PIXEL 
  66. BYTE ARRAY 
  67.      COLFIL=[0 17 34 51 68 85 102 
  68.              119 136 0 0 0 0 0 0 0], 
  69.      MASK=[15 240], 
  70.      MASK2=[240 15] 
  71.  
  72. PIXEL=LINEPT(Y)+(X RSH 1) 
  73. PIXEL^=PIXEL^ & MASK(X & 1) 
  74.             % (COLFIL(COL) 
  75.  
  76.             & MASK2(X & 1)) 
  77.  
  78. RETURN 
  79.  
  80.  
  81. BYTE FUNC LOCATE10(BYTE X,Y) 
  82. BYTE POINTER PIXEL 
  83. BYTE ARRAY MASK= [240 15 ] 
  84.  
  85. PIXEL= LINEPT(Y)+(X RSH 1) 
  86. RETURN((PIXEL^ & MASK(X & 1)) RSH 
  87.       (((X & 1) XOR 1) LSH 2)) 
  88.  
  89.  
  90. PROC DRAWLINE(BYTE A,B,C) 
  91. BYTE I 
  92.  
  93.  
  94. FOR I=A TO 79-A DO 
  95.   PLOT10(I,B,C) 
  96.   PLOT10(I,191-B,C) 
  97. OD 
  98. RETURN 
  99.  
  100.  
  101.  
  102.  
  103. PROC INIT() 
  104. BYTE I,J,S 
  105. GR10INIT() 
  106. FOR I=0 TO NUM-1 DO 
  107.  X(I)=RAND(40)      
  108.   DO 
  109.    Y(I)=Rand(96) 
  110.     S=0 
  111.     IF I=0 THEN 
  112.       EXIT 
  113.     FI 
  114.    FOR J=0 TO I-1 DO 
  115.      IF Y(I)=Y(J) THEN 
  116.       S=1 
  117.       EXIT 
  118.      FI 
  119.     OD 
  120.     UNTIL S=0 
  121.  OD    
  122. C(I)=(I MOD 8)+1 
  123. DRAWLINE(X(I),Y(I),C(I)) 
  124.  XD(I)=(RAND(2)*2-1)*(Rand(3)+1) 
  125. OD 
  126. RETURN 
  127.  
  128.  
  129.  
  130. PROC SQUEEZE(BYTE N) 
  131. BYTE A,I 
  132. INT D 
  133.  
  134. D=XD(N) 
  135. IF D<0 THEN 
  136.   D=-1 
  137. ELSE  
  138.   D=1 
  139. FI 
  140. FOR I=1 TO (XD(N)/D) DO 
  141.    A=X(N)+D 
  142.    IF A>39 THEN 
  143.     XD(N)=-XD(N) 
  144.   EXIT 
  145. FI 
  146. IF D>0 THEN 
  147.   PLOT10(X(N),Y(N),0) 
  148.   PLOT10(79-X(N),Y(N),0) 
  149.   PLOT10(X(N),191-Y(N),0) 
  150.   PLOT10(79-X(N),191-Y(N),0) 
  151.  ELSE 
  152.  PLOT10(X(N),Y(N),C(N)) 
  153.  PLOT10(79-X(N),Y(N),C(N)) 
  154.  PLOT10(X(N),191-Y(N),C(N))    
  155.  PLOT10(79-X(N),191-Y(N),C(N)) 
  156. FI 
  157. X(N)=A 
  158. PLOT10(X(N),Y(N),C(N)) 
  159. PLOT10(79-X(N),Y(N),C(N)) 
  160. PLOT10(X(N),191-Y(N),C(N)) 
  161. PLOT10(79-X(N),191-Y(N),C(N)) 
  162. OD 
  163. RETURN 
  164.  
  165.  
  166.  
  167.  
  168. PROC PULSE() 
  169. BYTE I,CH=764,AT=77,MS=19,LS=20 
  170.  
  171.  
  172. INTRO() 
  173. DO 
  174.  NUM=Rand(6)+5 
  175.  INIT() 
  176.  CH=255 
  177.  AT=77 
  178.  LS=0 
  179. MS=0 
  180. DO 
  181.   FOR I=0 TO NUM-1 DO 
  182.     SQUEEZE(I) 
  183.   OD 
  184.    UNTIL CH<>255 OR MS=4 
  185.  OD 
  186.  UNTIL CH=12 
  187. OD 
  188. CH=255 
  189. GRAPHICS(0) 
  190. RETURN 
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.